Xavier Bertolin Lahoz's profile

AGENDA CAP DE SETMANA (PROGRAMACIÓN)

AGENDA CAP DE SETMANA INFORMATIUS
TV3, TV CATALUNYA (PROGRAMACIÓN)
El pedido consistía en que a partir de un documento “Excel” se pudiera enseñar unos eventos que transcurre durante unos días de la semana, con una imagen asociada a cada evento.

Después que la compañera grafista (Angels Pons) hiciera el diseño, decidimos que datos necesitábamos exportar para que el Orad Maestro pudiera recibirlos desde el documento “Excel”.

Decidimos exportar la cantidad de eventos que se quería enseñar (AGENDA_EVENTS), el día de la semana en número (DILLUNS_NUM, DIMARTS_NUM, etc....), la visibilidad de los días seleccionados (DILLUS_T, DIMARTS_T, etc...), las dos imágenes que iban al fondo (IMATGE_FONS, IMATGE_FONS01) y el mes en que se iban a producir estos eventos (MES).

Además se crearon unas animaciones para la entrada y salida de los días seleccionados, para la entrada y salida de las imágenes que iban al fondo, más la creación y recogida de la agenda en sí misma.
Se unió el documento “Excel” al Orad Maestro como una base de datos externa y nos quedamos con unas columnas del documento que llenarían las casillas para los exportados de la escena del Orad 3Designer.
Para cada día de la semana creamos un Playlist, uno de entrada, que lleva la animación de entrada del número más el cambio de color, y otro de salida, que lleva la recogida y la recuperación de color de ese día, más un reset de un valor que crearemos (se explica más adelante).
En el siguiente “Story Item” traemos un PageEditor donde tenemos asociados los datos del “Excel” MES, DILLUNS_NUM, DIMARTS_NUM, etc... y AGENDA_EVENTS.
Como vemos, nos marca cuantos eventos vamos a enseñar, en que mes pasan y cuales son los números de la semana de ese mes.
Como necesitaremos más adelante algunas variables locales para igualarlas a la que nos trae los datos del “Excel”, en un script las creamos:

//CREACIÓ VARIABLES
app.addParameter("Dilluns");
app.addParameter("Dimarts");
app.addParameter("Dimecres");
app.addParameter("Dijous");
app.addParameter("Divendres");
app.addParameter("Dissabte");
app.addParameter("Diumenge");
app.addParameter("EventosAgenda");
app.EventosAgenda.Value = 1;
return true;
Y luego otro script para crear otra variable e igualarla a la variable de eventos que nos viene desde el documento Excel.

//VARIABLE NÚMERO EVENTS

app.addParameter("Events_Excel");
app.Events_Excel.Value = item.AGENDA_EVENTS.Value;
return true;
Seleccionamos los exportados que vamos a enseñar.
Ahora estamos en el siguiente PlayList, seleccionamos que datos vamos a enseñar. Aquí veremos que días vamos a marcar y cual es la imagen que va relacionada con estos días.
Ahora vamos a comprobar que días han sido seleccionados y que pasa si lo han sido.
Aunque hay siete días en una semana, solo explicaremos el primer día, el resto será lo mismo, solo cambiará la ID del PlayList que irá a lanzar.

//DILLUNS
if(item.DILLUNS_T.Value == "1")
{
app.Dilluns.Value = 1;
var itemdilluns = app.findItem("0000023S");
if ( itemdilluns != null)
{
app.cueItem( itemdilluns );
app.takeItem( itemdilluns );
}
}
return true;

Si el checkbox “DILLUNS_T” ha sido seleccionado, la variable que habíamos creado “Dilluns” le asignamos el valor de 1. Además creamos otra variable que se llama “itemdilluns” a la cual le introduciremos el valor del PlayList con el número de la ID de “01_DILLUNS_IN”, que rebobina y dispara el cambio de color y escala del lunes.

Si por el contrario, si “DILLUNS_T” no hubiera sido seleccionada, la condición no sería verdadera y haría un “return true;” y pasaría a la siguiente propiedad.
Este PlayList es siguiente paso, es el de seguir con la animación de la agenda por eso desde el disparador siempre haremos otro TAKE en estos Playlist, para avanzar.
A partir de ahora la cosa es diferente, porque hemos de saber que checkbox de los días en este evento están seleccionados y además si en el PlayList anterior, que sería el evento que nos precede, que día viene marcado o no.

//RESUMEN DILLUNS
if(app.Dilluns.Value =="1")
{
var itemdilluns = app.findItem("0000027K");
if ( itemdilluns != null)
{
app.takeItem( itemdilluns );
}
}
return true;

Aquí le preguntamos si “Dilluns” viene con el valor “1” del evento anterior, si es así, lo enviamos al PlayList de salida del lunes “DILLUNS_OUT”, miramos si está vacío (que lo estará, porque es una salida) y lo disparamos para recoger el número y recuperar el color original. También resetearemos la variable “Dilluns” a 0.

// RESET DILLUNS
app.Dilluns.Value = 0;
Si “Dilluns” no viene con el valor “1”, pasaría a la propiedad siguiente, que corresponde a Martes.
Ahora necesitamos saber que imagen nueva va en el fondo de este evento.
Y recoger los nuevos valores de los días elegidos.
Lo que hay a continuación en el PlayList es lo mismo que al principio, se mira qué checkbox está seleccionado, si lo está dispara el PlayList correspondiente, si no, lo deja como está.

Desde el disparador, siguiente TAKE que hará irnos a la siguiente PlayList.
Hay un máximo de 15 eventos. Así esto que he explicado en un par, pasa 14 veces más.
Pero para finalizar del todo la Agenda necesitamos una salida.
Cuando acabamos, además nos interesa limpiar las variables con las que hemos ido trabajando, por eso este código.

//ESBORRAR VARIABLES
app.deleteParameter("Dilluns");
app.deleteParameter("Dimarts");
app.deleteParameter("Dimecres");
app.deleteParameter("Dijous");
app.deleteParameter("Divendres");
app.deleteParameter("Dissabte");
app.deleteParameter("Diumenge");
app.deleteParameter("EventosAgenda");
app.deleteParameter("Events_Excel");
return true;

Todo esto se controla desde solo un PlayList, no se tiene que ir pasando de uno a otro.
El primer PlayList “DISPARADOR_AGENDA”, es el que selecciona que PlayList se ha de lanzar, a que ID a de ir en cada momento y cuando tiene que finalizar la Agenda.
En el primer TAKE, rebobina todos los PlayList y dispara el “AGENDA_IN_PROGRAMACION”, que es aquel donde están los días de la semana, que mes es y cuantos eventos hay.
En el segundo TAKE lo que hace es preguntar si el valor de la variable que creamos “EventosAgenda” es mayor a “Events_Excel” (el número de eventos que tenemos que enseñar). Si así es, tiene que ir al PlayList de salida y dispararlo. Con esto saldríamos de la Agenda.

La variable “EventosAgenda” nos sirve para controlar cuando hemos de cerrar la escena de la Agenda. Al principio le damos un valor de “1”.
Cuando se produce un evento nuevo, a esta variable le sumamos 1, de esta manera, cuando su valor sea superior o igual a los eventos que tenemos que enseñar, finalizará.

// TRUCA A AGENDA_EVENT_01
if(app.EventosAgenda.Value >= app.Events_Excel.Value)
{
var itemsortida = app.findItem("0000028H");
if ( itemsortida != null)
{
app.takeItem( itemsortida );
}
}
else
{ app.EventosAgenda.Value = app.EventosAgenda.Value += 1;
var itemevent01 = app.findItem("0000025U");
if ( itemevent01 != null)
{
app.cueItem( itemevent01 );
app.takeItem( itemevent01 );
}
}
return true;

Vemos que si no se cumple la primera condición, vamos a la segunda, que es sumar “1” a “EventosAgenda”, ir a la ID que toqué, rebobinarla y dispararla.

Este disparador hará lo que le hemos programado hasta que llegue al último evento. Si por algún motivo no se llegará a afirmar la condición, el último PlayList es el de salida.
AGENDA CAP DE SETMANA (PROGRAMACIÓN)
Published:

AGENDA CAP DE SETMANA (PROGRAMACIÓN)

Programación de la agenda del fin de semana para el TN Vespre de la cadena autonómica catalana. La programación ha sido hecha con Orad Maestro.

Published: